package com.css.dzj.dzjap.modules.record.community.service;


import com.css.dzj.dzjap.modules.publick.entity.ApPublicEntity;
import com.css.dzj.dzjap.modules.record.approject.entity.ApRecordEntity;
import com.css.dzj.dzjap.modules.record.community.entity.ApRecordGainEntity;
import com.querydsl.core.QueryResults;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 地震小区划工作成果备案接口
 *
 * @author zhouchanghe
 */
public interface CommunityRecordService {

    /**
     * 分页查询
     *
     * @param pageable
     * @return
     */
    Page<ApRecordGainEntity> getAllPage(Pageable pageable);


    QueryResults<ApRecordGainEntity> getPage(String userName, String recordProjectName, String status,
                                             String recordUser, String recordTimeStart, String recordTimeEnd, String recordType, String recordProjectAddress, String reportStatus, Pageable pageable);

    /**
     * 地震小区划工作成果备案添加
     *
     * @param apRecordGainEntity
     */
    void save(ApRecordGainEntity apRecordGainEntity);

    /**
     * 地震小区划工作成果备案暂存
     *
     * @param apRecordGainEntity
     */
    void zcsave(ApRecordGainEntity apRecordGainEntity);

    /**
     * 通过id查询地震小区划工作成果备案
     *
     * @param id
     * @return
     */
    ApRecordGainEntity queryApRecordGainById(String id);

    /**
     * 地震小区划工作成果备案更新
     *
     * @param apRecordGainEntity
     */
    void update(ApRecordGainEntity apRecordGainEntity);
    /**
     * 地震小区划工作成果备案更新
     *
     * @param apRecordGainEntity
     */
    void cancel(ApRecordGainEntity apRecordGainEntity);

    /**
     * 地震小区划工作成果/区域地震安全性评估成果
     *
     * @param
     * @return
     * @author zhouchanghe
     * @description TODO
     * @date 2019/12/18 9:50
     **/

    List<ApRecordGainEntity> getApRecordGainListByRecordLevel(String location, String recordType, String recordLevel);

    /**
     * 地震小区划工作成果备案提交
     *
     * @param apRecordGainEntity
     */
    void submit(ApRecordGainEntity apRecordGainEntity);

    /**
     * 地震小区划工作成果备案审批
     *
     * @param apRecordGainEntity
     */
    public void check(ApRecordGainEntity apRecordGainEntity);

    /*
       地震小区划工作/区域地震安全性评估添加公开公告
     */
    void addHandle(ApPublicEntity pub, String RecordType);


    /**
     * 地震小区划工作/区域地震安全性评估
     * 根据项目名称查找ApRecordGainEntity信息
     *
     * @return
     * @Author liyuan
     */
    ApRecordGainEntity queryByProName(String proName);
}
